package cn.edu.sjtu.stap.cg.builder;

/**
 * Interface of CG builder factory. CG builders can be created with this factory
 * class.
 * 
 * @author William
 * 
 */
public abstract class ICgBuilderFactory {
    /**
     * Create a concrete CG builder from this factory.
     * 
     * @return ICgBuilder a CG builder made by this factory.
     */
    public abstract ICgBuilder getCgBuilder();

    /**
     * Get the default factory of CG builders.
     * 
     * @return ICgBuilderFactory the default CG builder factory.
     */
    public static ICgBuilderFactory getDefaultCgBuilderFactory() {
        return DefaultCgBuilderFactory.getInstance();
    }
}
